(1) Field of the Invention
The present invention relates to the field of data processing, and more specifically to methods and apparatus for programming an embedded memory module or on-chip cache of an integrated circuit.
(2) Prior Art
In the past, vendors and users of integrated circuits (IC's) having embedded memories (or on-chip caches) have programmed the memories of the IC's using custom built auto-programming circuits. A typical programming circuit comprises a socket having a plurality of pins configured for receiving the connection pins of a particular IC. This programming circuit is coupled to an external memory device having digital logic means such as a microprocessor or the like in addition to a programming routine stored in memory. The IC to be programmed is inserted into the socket of the programming circuit and the memory device instructed to call the programming routine for writing data stored in a specified memory location of the device to the embedded memory of the IC.
According to second (yet similar) method for programming an IC having embedded memory, a slave-load programmer is provided having a socket designed for receiving a particular family of IC's, dedicated circuitry and logic means for programming the IC, a hard drive or floppy drive (and diskette) for storing the data to be written and an input keyboard for inputting commands to the programmer. The IC to be programmed is inserted into the socket and the programmer is subsequently instructed via the keyboard to write specific data stored in either of the hard drive or the floppy diskette to a specified memory location of the IC.
In utilizing the conventional methods and apparatus described above for programming embedded memories of an IC, the problem arises that only a specific IC or a family of IC's can be programmed with a particular programming circuit or programmer. The reason for this is that the configuration and/or number of pins in addition to the timing specifications for accessing the embedded memories vary from IC family to IC family, and sometimes even between IC's within a particular family. Therefore, the wide variety of IC's available on the market requires a vendor or customer to invest in (if not to design himself) many different types of programming circuits and/or slave-load programmers in order to program the embedded memories of the different IC's which they use.
Accordingly, it would be desirable to provide a standardized method and apparatus for accessing and programming embedded memories (or on-chip caches) of all future IC's so as to eliminate the need for using a plurality of programming circuits and/or programmers for different types of IC's.
It is therefore an object of the present invention to provide a standardized method and apparatus for programming a variety of devices including micro-controllers, EPROMS, FLASHes and EPLDs.
It is another object of the present invention to provide a standardized method and apparatus for programming embedded memories of a plurality of different ICs while minimizing the number of interface pins required for the programming, thereby allowing the ICs to be less complex and less expensive.
It is a further object of the present invention to provide a method and apparatus which enables easy, in-system programming of a variety of ICs during the manufacturing process and reprogramming of the ICs when upgraded software becomes available.